from PyQt5.QtCore import QDir
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import *
from PyQt5 import *
import sys,test


class QFileDialogoDemo(QWidget):
    def __init__(self):
        super(QFileDialogoDemo,self).__init__()
        self.initUI()
    def initUI(self):
        loyout=QVBoxLayout(self)
        self.but1=QPushButton("加载图片")
        self.but1.clicked.connect(self.loodImage)

        loyout.addWidget(self.but1)

        self.imageLabel=QLabel()
        loyout.addWidget(self.imageLabel)

        self.btn2=QPushButton("加载文本")
        self.btn2.clicked.connect(self.loodText)
        loyout.addWidget(self.btn2)

        self.contes=QTextEdit()
        loyout.addWidget(self.contes)

        self.setLayout(loyout)
        self.setWindowTitle("文件对话框")

    def loodImage(self):
        filename,_=QFileDialog.getOpenFileName(self,"打开文件",".","图像文件 (*.jpg *.png)")
        print(filename)
        #如果文件名不等于空，就加载图片
        if filename != '':
            self.imageLabel.setPixmap(QPixmap(filename))
    def loodText(self):
        dialog=QFileDialog()
        dialog.setFileMode(QFileDialog.AnyFile) #AnyFile 任何文件
        dialog.setFilter(QDir.Files)

        #如果选择文件成功 则打开文件
        if dialog.exec_():
            filename=dialog.selectedFiles()
            f=open(filename[0],'r')
            with f:
                data=f.read()
                self.contes.setText(data)


if __name__ == '__main__':
    #实例化一个Qt应用
    app=QApplication(sys.argv)
    #实例化本地的一个Qt窗口
    mainwindow=QFileDialogoDemo()
    #显示本地窗口
    mainwindow.show()
    #系统推出条件是等待app退出后才推出【安全推出】
    sys.exit(app.exec_())
